
*************************************
************* Load data *************
*************************************

clear
use "${data_out_folder}/wave1_wave2_final", clear

* All analyses here use only wave 1 data.
keep if wave == 1


********************************************************
********** CLEANING SPECIFIC TO WAVE 1 *****************
********************************************************

* Share of Americans that fight global warming 
summ fight_gw
gen actual_behavior = r(mean)

* Share of Americans that say one should fight global warming 
summ fight_gw_norm
gen actual_norms = r(mean)

* Rescale all beliefs from [0, 100] to [0, 1]
foreach var in belief_behavior belief_norm belief_punish fight_belief_1 fight_belief_2 fight_belief_3 fight_belief_4 fight_belief_5 fight_belief_6 fight_norms_belief_1 fight_norms_belief_2 fight_norms_belief_3 fight_norms_belief_4 fight_norms_belief_5 fight_norms_belief_6 {
	replace `var' = `var' / 100.0 if `var' != .
}

* Reverse the coding of all policy items such that larger values
*	  mean more support for these policies/actions
local policy_vars support_policy_1 support_policy_2 support_policy_3 support_policy_4 support_policy_5 support_policy_6 support_schools_1 support_actions_1 support_actions_2 support_actions_3 support_actions_4 support_actions_5 support_actions_6 support_actions_7 support_actions_8 support_actions_9 support_actions_10 support_actions_11
foreach var in `policy_vars' {
	replace `var' = 5 - `var' if `var' != . 
}

* Outcome: Support for policies (z-scored, index)
egen row_missings = rowmiss(support_policy_1 support_policy_2 support_policy_3 support_policy_4 support_policy_5 support_policy_6 support_schools_1)
egen support_policy = rowtotal(support_policy_1 support_policy_2 support_policy_3 support_policy_4 support_policy_5 support_policy_6 support_schools_1) if row_missings==0
drop row_missings

summ support_policy
replace support_policy = (support_policy - r(mean)) / r(sd)
la var support_policy "Policy support (z-scored)"

* Outcome: Support for taking actions (z-scored)
egen row_missings = rowmiss(support_actions_1 support_actions_2 support_actions_3 support_actions_4 support_actions_5 support_actions_6 support_actions_7 support_actions_8 support_actions_9 support_actions_10 support_actions_11)
egen support_action = rowtotal(support_actions_1 support_actions_2 support_actions_3 support_actions_4 support_actions_5 support_actions_6 support_actions_7 support_actions_8 support_actions_9 support_actions_10 support_actions_11) if row_missings==0
drop row_missings

summ support_action 
replace support_action = (support_action - r(mean)) / r(sd)
la var support_action "Policy action (z-scored)"

* Outcome: All policy/action items (z-scored)
egen row_missings = rowmiss(`policy_vars')
egen support_both = rowtotal(`policy_vars') if row_missings==0
drop row_missings
summ support_both
replace support_both = (support_both - r(mean)) / r(sd)
la var support_both "Support: all items (z-scored)"

* z-scored policy support items
foreach var in `policy_vars' {
	qui gen z_`var' = `var'
	qui summ z_`var'
	qui replace z_`var' = (`var' - r(mean)) / r(sd)
}

* Posterior beliefs: Empirical beliefs, first-order normative beliefs, second-order normative beliefs. 
*  	Empirical belief
egen row_missings = rowmiss(fight_belief_1 fight_belief_2 fight_belief_3 fight_belief_4 fight_belief_5 fight_belief_6)
egen posterior_empirical = rowtotal(fight_belief_1 fight_belief_2 fight_belief_3 fight_belief_4 fight_belief_5 fight_belief_6) if row_missings==0
drop row_missings

summ posterior_empirical
replace posterior_empirical = (posterior_empirical - r(mean)) / r(sd)
la var posterior_empirical "Posterior: Empirical beliefs (z-scored)"

*  	First-order beliefs
egen row_missings = rowmiss(fight_norms_1 fight_norms_2 fight_norms_3 fight_norms_4 fight_norms_5 fight_norms_6)
egen posterior_norms_first = rowtotal(fight_norms_1 fight_norms_2 fight_norms_3 fight_norms_4 fight_norms_5 fight_norms_6) if row_missings==0
drop row_missings

summ posterior_norms_first
replace posterior_norms_first = (posterior_norms_first - r(mean)) / r(sd)
la var posterior_norms_first "Posterior: 1st order normative beliefs (z-scored)"

*  	Second-order beliefs
egen row_missings = rowmiss(fight_norms_belief_1 fight_norms_belief_2 fight_norms_belief_3 fight_norms_belief_4 fight_norms_belief_5 fight_norms_belief_6)
egen posterior_norms_second = rowtotal(fight_norms_belief_1 fight_norms_belief_2 fight_norms_belief_3 fight_norms_belief_4 fight_norms_belief_5 fight_norms_belief_6) if row_missings==0
drop row_missings

summ posterior_norms_second
replace posterior_norms_second = (posterior_norms_second - r(mean)) / r(sd)
la var posterior_norms_second "Posterior: 2st order normative beliefs (z-scored)"

* Wedge between information treatment and beliefs 
gen wedge_behavior = belief_behavior - actual_behavior
la var wedge_behavior "Misperception: Empirical"

gen wedge_norms = belief_norm - actual_norms
la var wedge_norms "Misperception: Normative"

* Standardized variables
foreach var in relative_universalist_values belief_behavior belief_norm {
	qui summ `var'
	qui gen z_`var' = (`var' - r(mean)) / r(sd) if `var' != .
}

foreach var in std_altruism_score std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score {
	qui summ `var'
	qui replace `var' = (`var' - r(mean)) / r(sd) if `var' != .
}



*****************************************************************************
*********************  STATEMENTS IN TEXT ***********************************
*****************************************************************************

* Median duration in the survey: Wave 1
summ Durationinseconds , detail
local median_duration = r(p50) / 60
di "Wave 1 median duration: `median_duration' minutes"

* Average donation
summ donation, de

* Average share of the donation
gen donation_pct = donation / 450.0
summ donation_pct
drop donation_pct

* Share of respondents donating $0
fre donation

* Correlation in behavior and norm beliefs
corr z_belief_norm z_belief_behavior

* Negative correlation between college education and donations among Republicans
reg donation college if !democrat , r

* Average behavior and norms belief 
summ belief_behavior
summ belief_norm

* Share of respondents that underestimate norms
gen underestimate_behavior = wedge_behavior < 0
gen underestimate_norms = wedge_norms < 0

summ underestimate_behavior underestimate_norms
drop underestimate_behavior underestimate_norms

* p-value for difference between average belief and actual shares
summ fight_gw
local actual_value = r(mean)
ttest belief_behavior == `actual_value'
ttest belief_behavior == fight_gw

summ fight_gw_norm
local actual_value = r(mean)
ttest belief_norm == `actual_value'
ttest belief_norm == fight_gw_norm


*****************************************************************************
*********************  EXHIBITS *********************************************
*****************************************************************************


**************************************************************
*** Table 1: Determinants of climate change behavior       ***
**************************************************************

eststo clear
foreach var in donation {
	qui eststo reg1: reg `var' z_belief_behavior std_altruism_score  std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score z_relative_universalist_values democrat age age_squared female log_income college employed some_children, r
	qui summ `var'
	estadd scalar control_mean = round(r(mean), 0.001)
}
* Statements in text about this table
test z_belief_behavior

foreach var in donation {
	qui eststo reg2: reg `var' z_belief_norm std_altruism_score std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score z_relative_universalist_values democrat age age_squared female log_income college employed some_children, r
	qui summ `var'
	estadd scalar control_mean = round(r(mean), 0.001)
}

* Statements in text about this table
test z_belief_norm

* Export table
esttab * using "${out_folder}/tables/tab_1.tex", replace drop(_cons) starlevels(* 0.1 ** 0.05 *** 0.01) stats(r2 N control_mean, label("\begin{math}R^2\end{math}" "N" "Mean of dep. var.") fmt(%9.3fc %9.0fc a4)) se b(3)  label order(z_belief_behavior z_belief_norm) coeflabels(z_belief_behavior "Behavior belief" z_belief_norm "Norms belief" std_risk_taking_score "Risk" std_patience_score "Patience" std_altruism_score "Altruism" std_pos_rec_score "Positive reciprocity" std_neg_rec_score "Negative reciprocity" std_trust_score "Trust" z_relative_universalist_values "Relative universalism" age "Age" female "Female" log_income "Log income" college "College degree" employed "Employed" democrat "Democrat" some_children "Parent") refcat(z_belief_behavior "\textbf{Perceived social norms}" std_altruism_score " \textbf{Economic preferences}" z_relative_universalist_values "\textbf{Moral foundations}" democrat "\textbf{Sociodemographics}", nolabel)  nomtitles mgroup("Donation (\\$)", pattern(1 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) booktabs fragment substitute(addlinespace addlinespace[0.25em])


* Statement in text: What is the effect of a 10pp increase in beliefs on donations?
eststo clear
foreach var in donation {
	qui eststo : reg `var' belief_behavior std_altruism_score  std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score z_relative_universalist_values democrat age age_squared female log_income college employed some_children, r
	qui summ `var'
	estadd scalar control_mean = round(r(mean), 0.001)
}

foreach var in donation {
	qui eststo : reg `var' belief_norm std_altruism_score std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score z_relative_universalist_values democrat age age_squared female log_income college employed some_children, r
	qui summ `var'
	estadd scalar control_mean = round(r(mean), 0.001)
}

* the coefficients divided by 10 is what we want:
esttab *, keep(belief_*) se b(3) starlevels(* 0.1 ** 0.05 *** 0.01)

* for the standard deviation reference
summ belief_norm belief_behavior


**************************************************************
*** Figure 2: Perceived social norms: fight global warming ***
**************************************************************

*****************
*** Panel A.1 ***
*****************
summ fight_gw
local actual_value = r(mean)
summ belief_behavior
local mean_belief = r(mean)
ttest fight_gw == belief_behavior
local pval = round(r(p), 0.001)
if `pval' <= 0.001 {
	local pval "{it:p}-value < 0.001"
}
else {
	local pval "{it:p}-value = `pval'"
}

twoway (histogram belief_behavior, xtitle("", size(medium)) percent lcolor(gs8) fcolor(gs12) bin(20)) (scatteri 0 `actual_value' 15 `actual_value', recast(line) lpattern(dash) lwidth(0.5) lc(navy)) (scatteri 0 `mean_belief' 15 `mean_belief', recast(line) lpattern(solid) lwidth(0.5) lc(maroon)),   title("{bf: Panel A.1:} Behavior belief", size(medlarge)) xlab(0(0.2)1.0, labsize(medium)) xmtick(##4) ylab(, labsize(medium)) ytitle("Percent", size(medium)) name(panelA, replace) legend(order(3 "Average belief" 2 "Actual share") pos(6) col(2) size(medsmall)) xsize(3) ysize(3) text(12.5 0.1 "`pval'", placement(east))

*****************
*** Panel A.2 ***
*****************
summ fight_gw_norm
local actual_value = r(mean)
summ belief_norm
local mean_belief = r(mean)
ttest fight_gw_norm == belief_norm
local pval = round(r(p), 0.001)
if `pval' <= 0.001 {
	local pval "{it:p}-value < 0.001"
}
else {
	local pval "{it:p}-value = `pval'"
}

twoway (histogram belief_norm, xtitle("", size(medium)) percent lcolor(gs8) fcolor(gs12) bin(20)) (scatteri 0 `actual_value' 15 `actual_value', recast(line) lpattern(dash) lwidth(0.5) lc(navy)) (scatteri 0 `mean_belief' 15 `mean_belief', recast(line) lpattern(solid) lwidth(0.5) lc(maroon)),   title("{bf: Panel A.2:} Norms belief", size(medlarge)) xlab(0(0.2)1.0, labsize(medium)) xmtick(##4) ylab(, labsize(medium)) ytitle("Percent", size(medium)) name(panelB, replace) legend(order(3 "Average belief" 2 "Actual share") pos(6) col(2) size(medsmall)) xsize(3) ysize(3) text(12.5 0.1 "`pval'", placement(east))

* MERGE PANELS A.1 AND A.2 AND SAVE
grc1leg panelA panelB, xcommon ycommon imargin(0 0 0 0 0)
graph display, xsize(6) ysize(3) scale(1.5)
graph export "${out_folder}/figures/fig_2_panel_A.pdf", replace

*****************
*** Panel B.1 ***
*****************

local titles "Restrict meat consumption" "Avoid taking flights" "Use car alternatives" "Use electricity from green sources" "Adapt shopping behavior" "Political engagement"
foreach k of numlist 1/6 {
	capture drop wedge_fight_behavior_`k'
	local title: word `k' of "`titles'"
	qui gen wedge_fight_behavior_`k' = fight_belief_`k' - fight_lastyear_`k' 
	la var wedge_fight_behavior_`k' "`title'"
}

foreach k of numlist 1/6 {
	capture drop wedge_fight_norms_`k'
	local title: word `k' of "`titles'"
	qui gen wedge_fight_norms_`k' = fight_norms_belief_`k' - fight_norms_`k'
	la var wedge_fight_norms_`k' "`title'"
}

foreach k of numlist 1/6 {
	local title: word `k' of "`titles'"
	la var fight_lastyear_`k' "`title'"
	la var fight_belief_`k' "`title'"
	la var fight_norms_`k' "`title'"
	la var fight_norms_belief_`k' "`title'"
}

eststo clear
foreach k of numlist 1/6 {
	qui eststo a`k': mean fight_lastyear_`k'
	qui eststo b`k': mean fight_belief_`k'
}

* Panel B.1
coefplot (a1 a2 a3 a4 a5 a6, label(Actual) bcolor(gs10) blcolor(black)) (b1 b2 b3 b4 b5 b6, label(Perceived) bcolor(white) blcolor(black)), citop ciopts(recast(rcap) lcolor(black)) lwidth(0.3) recast(bar) barwidth(0.35) xtitle("", size(medium)) xlab(0(0.2)0.7, labsize(medium))  legend(pos(6) size(medsmall) col(2)) xsize(3) ysize(3) coeflabels(, wrap(18)) ylab(,labsize(medium)) title("{bf: Panel B.1:} Behavior beliefs", size(medlarge)) rename(fight_lastyear_1 = fight_belief_1 fight_lastyear_2 = fight_belief_2 fight_lastyear_3 = fight_belief_3 fight_lastyear_4 = fight_belief_4 fight_lastyear_5 = fight_belief_5  fight_lastyear_6 = fight_belief_6) name(panelC, replace)

*****************
*** Panel B.2 ***
*****************
eststo clear
foreach k of numlist 1/6 {
	qui eststo a`k': mean fight_norms_`k'
	qui eststo b`k': mean fight_norms_belief_`k'
}

coefplot (a1 a2 a3 a4 a5 a6, label(Actual) bcolor(gs10) blcolor(black)) (b1 b2 b3 b4 b5 b6, label(Perceived) bcolor(white) blcolor(black)), citop ciopts(recast(rcap) lcolor(black)) lwidth(0.3) recast(bar) barwidth(0.35) xtitle("", size(medium)) xlab(0(0.2)0.7, labsize(medium))  legend(pos(6) size(medsmall) col(2)) xsize(3) ysize(3) coeflabels(, wrap(18)) ylab(,labsize(medium)) title("{bf: Panel B.2:} Norm beliefs", size(medlarge)) rename(fight_norms_1 = fight_norms_belief_1 fight_norms_2 = fight_norms_belief_2 fight_norms_3 = fight_norms_belief_3 fight_norms_4 = fight_norms_belief_4 fight_norms_5 = fight_norms_belief_5  fight_norms_6 = fight_norms_belief_6) name(panelD, replace)

* MERGE PANELS B.1 AND B.2 AND SAVE
grc1leg panelC panelD, xcommon ycommon imargin(0 0 0 0 0) name(lower_panel, replace)
graph display, xsize(6) ysize(3) scale(1.4)
graph export "${out_folder}/figures/fig_2_panel_B.pdf", replace




********************************************************************************************
*						Appendix A: Additional analyses
********************************************************************************************


**************************************************************
*** Table A.5: Determinants of norm misperceptions ***
**************************************************************

gen abs_wedge_behavior = abs(wedge_behavior) * 100
gen abs_wedge_norms = abs(wedge_norms) * 100

eststo clear
foreach var in wedge_behavior wedge_norms {
	qui eststo: reg abs_`var' democrat age female log_income college employed some_children, r
	qui summ `var'
	estadd scalar control_mean = round(r(mean), 0.001)
	qui eststo: reg abs_`var' democrat age female log_income college employed some_children if `var'<=0, r
	qui summ `var'
	estadd scalar control_mean = round(r(mean), 0.001)
}

esttab * using "${out_folder}/tables/tab_A5.tex", replace se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) label stats(N r2 , labels("N" "\begin{math}R^2\end{math}") fmt(%9.0fc %9.3fc )) mtitle("\makecell{Full\\ sample}" "\makecell{Underestimators\\only}" "\makecell{Full\\ sample}" "\makecell{Underestimators\\only}") prehead("&\multicolumn{@M}{c}{Dependent variable: Absolute prediction error (in percentage points)}\\\cmidrule(lr){2-@span}") mgroup("Behavior belief" "Norms belief", pattern(1 0 1 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) booktabs fragment


**************************************************************
*** Figure A.2: The distribution of individual willingness to fight global warming ***
**************************************************************
summ donation
local donation_mean = r(mean)

twoway (hist donation, xtitle("Donation ($)", size(medium)) xlab(0(50)450, labsize(medium)) fcolor(gs12) lcolor(black) ymtick(##5) ylab(,labsize(medium)) ytitle("Percent", size(medium)) percent) (scatteri 0 `donation_mean' 15 `donation_mean', recast(line) lpattern(solid) lwidth(0.5) lc(maroon)), legend(off)
 
graph export "${out_folder}/figures/fig_A2.pdf", replace


**************************************************************
*** Table A.3: Validation of self-reported willingness to pay ***
**************************************************************

eststo clear
foreach var in donation fight_lastyear_1 fight_lastyear_2 fight_lastyear_3 fight_lastyear_4 fight_lastyear_5 fight_lastyear_6 {
	qui eststo: reg `var' wtp_1, r
}

esttab * using "${out_folder}/tables/tab_A3.tex", replace se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) stats(N r2, label("N" "R\textsuperscript{2}") fmt(%9.0fc %9.3fc)) compress nogaps mtitles("\makecell{Donation\\ (in \\$)}" "\makecell{Restrict\\meat\\consumption}" "\makecell{Avoid\\taking\\flights}" "\makecell{Use car\\alternatives}" "\makecell{Renewable\\energy use}" "\makecell{Adapt\\shopping\\behavior}" "\makecell{Politically\\support fight\\ against GW}") coeflabel(wtp_1 "WTP 1\%" _cons "Constant") mgroup("Dependent variable:", pattern(1 0 0 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) booktabs fragment


**************************************************************
*** Table A.4: Education and individual willingness to fight global warming ***
**************************************************************
eststo clear 
qui eststo : reg donation dem_college rep_college z_belief_norm std_altruism_score std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score z_relative_universalist_values democrat age age_squared female log_income employed some_children , r
qui summ donation
estadd scalar control_mean = round(r(mean), 0.001)

qui eststo : reg donation dem_college rep_college z_belief_behavior std_altruism_score std_patience_score std_risk_taking_score std_pos_rec_score std_neg_rec_score std_trust_score z_relative_universalist_values democrat age age_squared female log_income employed some_children , r
qui summ donation
estadd scalar control_mean = round(r(mean), 0.001)

estadd local c1 "Yes" : _all
estadd local c2 "Yes" : _all
estadd local c3 "Behavior belief", replace : est1
estadd local c3 "Norms belief", replace : est2

esttab * using "${out_folder}/tables/tab_A4.tex", replace keep(dem_college rep_college) se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) mgroup("Outcome: Donation (\\$)" , pattern(1 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) booktabs fragment coeflabel(dem_college "Democrat x college degree" rep_college "Republican x college degree") stats(N control_mean c1 c2 c3 , labels("N" "Control group mean" "Demographic controls" "Preferences and moral universalism" "Normative belief") fmt(%9.0fc %9.2fc a4)) nomtitles


****************************************************************************************
*** Figure A.3: Perceived prevalence of concrete climate-friendly behaviors          ***
*** Figure A.4: Perceived prevalence of norms for concrete climate-friendly behavior ***
****************************************************************************************
local titles "Restrict meat consumption" "Avoid taking flights" "Use car alternatives" "Use electricity from green sources" "Adapt shopping behavior" "Political engagement"
foreach k of numlist 1/6 {
	* Get current title
	local title: word `k' of "`titles'"
	di "`title'"

	* Actual behavior vs. empirical belief distribution
	summ fight_lastyear_`k'
	local actual_value = r(mean)
	summ fight_belief_`k'
	local mean_belief = r(mean)

	* t-test for difference in means
	ttest fight_lastyear_`k' == fight_belief_`k'
	local pval = round(r(p), 0.001)

	if `pval' <= 0.001 {
		local pval "{it:p}-value < 0.001"
	}
	else {
		local pval "{it:p}-value = `pval'"
	}

	twoway (histogram fight_belief_`k', xtitle("", size(medium)) percent lcolor(gs8) fcolor(gs12) bin(20)) (scatteri 0 `actual_value' 15 `actual_value', recast(line) lpattern(dash) lwidth(0.5) lc(navy)) (scatteri 0 `mean_belief' 15 `mean_belief', recast(line) lpattern(solid) lwidth(0.5) lc(maroon)),  title("{bf: Behavior belief:} `title'", size(medium)) xlab(0(0.2)1.0, labsize(medium)) xmtick(##4) ylab(, labsize(medium)) ytitle("Percent", size(medium))  name(A_`k', replace) legend(off) text(12.5 0.7 "`pval'", placement(east))

	* Panel B
	summ fight_norms_`k'
	local actual_value = r(mean)
	summ fight_norms_belief_`k'
	local mean_belief = r(mean)

	* t-test for difference in means
	ttest fight_norms_`k' == fight_norms_belief_`k'
	local pval = round(r(p), 0.001)

	if `pval' <= 0.001 {
		local pval "{it:p}-value < 0.001"
	}
	else {
		local pval "{it:p}-value = `pval'"
	}

	twoway (histogram fight_norms_belief_`k', xtitle("", size(medium)) percent lcolor(gs8) fcolor(gs12) bin(20)) (scatteri 0 `actual_value' 15 `actual_value', recast(line) lpattern(dash) lwidth(0.5) lc(navy)) (scatteri 0 `mean_belief' 15 `mean_belief', recast(line) lpattern(solid) lwidth(0.5) lc(maroon)),   title("{bf: Norms belief:} `title'", size(medium)) xlab(0(0.2)1.0, labsize(medium)) xmtick(##4) ylab(, labsize(medium)) ytitle("Percent", size(medium)) name(B_`k', replace) legend(off) text(12.5 0.7 "`pval'", placement(east))
}

* Figure A.3
graph combine A_1 A_2 A_3 A_4 A_5 A_6, xcommon ycommon cols(2)
graph export "${out_folder}/figures/fig_A3.pdf", replace

* Figure A.4
graph combine B_1 B_2 B_3 B_4 B_5 B_6, xcommon ycommon cols(2)
graph export "${out_folder}/figures/fig_A4.pdf", replace



********************************************************************************
*** Table A.6: Relationship of abstract and specific perceived norm measures ***
********************************************************************************

preserve
	* standardize concrete measures
	foreach var of varlist fight_belief_* fight_norms_belief_*{
		egen std_`var' = std(`var')
	}

	* PANEL A: Correlation between abstract perceived behavior and concrete perceived behavior
	eststo clear
	foreach var of varlist std_fight_norms_belief_* {
		eststo: reg `var' z_belief_behavior, r
	}
	esttab * using "${out_folder}/tables/tab_A6.tex", replace drop(_cons) se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) mtitles("\shortstack{Restrict meat\\consumption}" "\shortstack{Avoid taking\\ flights}" "\shortstack{Use car\\alternatives}" "\shortstack{Use green\\electricity}" "\shortstack{Adapt shopping\\behavior}" "\shortstack{Political\\engagement}") stats(N r2, labels("N" "\begin{math}R^2\end{math}") fmt(%9.0fc %9.3fc)) label booktabs fragment coeflabels(z_belief_behavior "Behavior belief") refcat(z_belief_behavior " \textbf{Panel A: Behavior}", nolabel)

	* PANEL B: Correlation between abstract perceived norms and concrete perceived norms
	eststo clear
	foreach var of varlist std_fight_norms_belief_* {
		eststo: reg `var' z_belief_norm, r
	}

	esttab * using "${out_folder}/tables/tab_A6.tex", append drop(_cons) se b(3) starlevels(* 0.1 ** 0.05 *** 0.01)  stats(N r2, labels("N" "\begin{math}R^2\end{math}") fmt(%9.0fc %9.3fc)) label booktabs fragment coeflabels(z_belief_norm "Norms belief") refcat(z_belief_norm " \textbf{Panel B: Norms}", nolabel) nomtitles collabels(none) nonumber
restore


********************************************************************************
*** Table A.2: Relationship between donations and self-reported concrete climate behaviors ***
********************************************************************************
eststo clear
foreach k in 1 2 3 4 5 6 {
	qui eststo: reg donation fight_lastyear_`k', r
}
esttab * using "${out_folder}/tables/tab_A2.tex", replace se b(3) starlevels(* 0.1 ** 0.05 *** 0.01) label stats(N, label("N") fmt(%9.0fc %9.3fc)) nomtitles mgroup("Dependent variable: Donation (\\$)", pattern(1 0 0 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) booktabs fragment

